<?php

declare(strict_types=1);

namespace ImiApp\ApiServer\Api\Model\Base;

use Imi\Config\Annotation\ConfigValue;
use Imi\Model\Annotation\Column;
use Imi\Model\Annotation\DDL;
use Imi\Model\Annotation\Entity;
use Imi\Model\Annotation\Table;
use ImiApp\ImiServer\AbstractModel as Model;

/**
 * 会员表 基类.
 *
 * @Entity(camel=false, bean=true, incrUpdate=false)
 * @Table(name=@ConfigValue(name="@app.models.ImiApp\ApiServer\Api\Model\FaUser.name", default="fa_user"), usePrefix=false, id={"id"}, dbPoolName=@ConfigValue(name="@app.models.ImiApp\ApiServer\Api\Model\FaUser.poolName"))
 * @DDL(sql="CREATE TABLE `fa_user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `group_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '组别ID',
  `username` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '用户名',
  `nickname` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '昵称',
  `password` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '密码',
  `salt` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '密码盐',
  `email` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '电子邮箱',
  `name` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '真实名',
  `mobile` varchar(11) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '手机号',
  `sfz` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '身份证号',
  `address` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '联系住址',
  `sfz1_image` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '身份证正面',
  `sfz2_image` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '身份证反面',
  `sfz3_image` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '人像照',
  `real_status` enum('0','1') COLLATE utf8mb4_unicode_ci DEFAULT '0' COMMENT '实名状态:0=待认证,1=已实名',
  `avatar` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '头像',
  `level` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '等级',
  `gender` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '性别',
  `birthday` date DEFAULT NULL COMMENT '生日',
  `bio` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '格言',
  `money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '余额',
  `shell` decimal(10,2) DEFAULT '0.00' COMMENT '贝壳',
  `surety` decimal(10,2) DEFAULT '0.00' COMMENT '保证金',
  `share_score` decimal(10,2) DEFAULT NULL COMMENT '邀请成功总积分',
  `score` decimal(10,2) DEFAULT '0.00' COMMENT '积分',
  `successions` int(10) unsigned NOT NULL DEFAULT '1' COMMENT '连续登录天数',
  `maxsuccessions` int(10) unsigned NOT NULL DEFAULT '1' COMMENT '最大连续登录天数',
  `prevtime` bigint(16) DEFAULT NULL COMMENT '上次登录时间',
  `logintime` bigint(16) DEFAULT NULL COMMENT '登录时间',
  `loginip` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '登录IP',
  `loginfailure` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '失败次数',
  `joinip` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '加入IP',
  `jointime` bigint(16) DEFAULT NULL COMMENT '加入时间',
  `createtime` bigint(16) DEFAULT NULL COMMENT '创建时间',
  `updatetime` bigint(16) DEFAULT NULL COMMENT '更新时间',
  `token` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'Token',
  `status` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '状态',
  `verification` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '验证',
  `pid` int(10) unsigned DEFAULT NULL COMMENT '上级id',
  `before_pid` int(10) unsigned DEFAULT NULL COMMENT '变更前上级',
  `old_pid` int(10) unsigned DEFAULT NULL COMMENT '原上级',
  `cipher` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '密码',
  `qr` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '二维码',
  `invite_code` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '邀请码',
  `run_id` int(10) DEFAULT NULL COMMENT '运营中心',
  `addr_id` int(10) unsigned DEFAULT NULL COMMENT '默认地址',
  `set_id` int(10) unsigned DEFAULT '1' COMMENT '角色ID',
  `skill` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '技能介绍',
  `province_id` int(10) unsigned DEFAULT NULL COMMENT '省id',
  `city_id` int(10) unsigned DEFAULT NULL COMMENT '城市id',
  `district_id` int(10) unsigned DEFAULT NULL COMMENT '区id',
  `town_id` int(10) unsigned DEFAULT NULL COMMENT '乡镇id',
  `pay_password` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '支付密码',
  `unionid` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '开放平台',
  `wechat_name` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '微信真实姓名',
  `wechat_openid` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '微信openid',
  `after_sales_user_id` int(10) unsigned DEFAULT NULL COMMENT '售后站服务用户id',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `username` (`username`),
  KEY `email` (`email`),
  KEY `mobile` (`mobile`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会员表'", decode="")
 *
 * @property int|null $id ID
 * @property int|null $groupId 组别ID
 * @property string|null $username 用户名
 * @property string|null $nickname 昵称
 * @property string|null $password 密码
 * @property string|null $salt 密码盐
 * @property string|null $email 电子邮箱
 * @property string|null $name 真实名
 * @property string|null $mobile 手机号
 * @property string|null $sfz 身份证号
 * @property string|null $address 联系住址
 * @property string|null $sfz1Image 身份证正面
 * @property string|null $sfz2Image 身份证反面
 * @property string|null $sfz3Image 人像照
 * @property string|null $realStatus 实名状态:0=待认证,1=已实名
 * @property string|null $avatar 头像
 * @property int|null $level 等级
 * @property int|null $gender 性别
 * @property string|null $birthday 生日
 * @property string|null $bio 格言
 * @property string|float|int|null $money 余额
 * @property string|float|int|null $shell 贝壳
 * @property string|float|int|null $surety 保证金
 * @property string|float|int|null $shareScore 邀请成功总积分
 * @property string|float|int|null $score 积分
 * @property int|null $successions 连续登录天数
 * @property int|null $maxsuccessions 最大连续登录天数
 * @property int|null $prevtime 上次登录时间
 * @property int|null $logintime 登录时间
 * @property string|null $loginip 登录IP
 * @property int|null $loginfailure 失败次数
 * @property string|null $joinip 加入IP
 * @property int|null $jointime 加入时间
 * @property int|null $createtime 创建时间
 * @property int|null $updatetime 更新时间
 * @property string|null $token Token
 * @property string|null $status 状态
 * @property string|null $verification 验证
 * @property int|null $pid 上级id
 * @property int|null $beforePid 变更前上级
 * @property int|null $oldPid 原上级
 * @property string|null $cipher 密码
 * @property string|null $qr 二维码
 * @property string|null $inviteCode 邀请码
 * @property int|null $runId 运营中心
 * @property int|null $addrId 默认地址
 * @property int|null $setId 角色ID
 * @property string|null $skill 技能介绍
 * @property int|null $provinceId 省id
 * @property int|null $cityId 城市id
 * @property int|null $districtId 区id
 * @property int|null $townId 乡镇id
 * @property string|null $payPassword 支付密码
 * @property string|null $unionid 开放平台
 * @property string|null $wechatName 微信真实姓名
 * @property string|null $wechatOpenid 微信openid
 * @property int|null $afterSalesUserId 售后站服务用户id
 */
abstract class FaUserBase extends Model
{
    /**
     * {@inheritdoc}
     */
    public const PRIMARY_KEY = 'id';

    /**
     * {@inheritdoc}
     */
    public const PRIMARY_KEYS = ["id"];

    /**
     * ID.
     * id
     * @Column(name="id", type="int", length=10, accuracy=0, nullable=false, default="", isPrimaryKey=true, primaryKeyIndex=0, isAutoIncrement=true, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $id = NULL;

    /**
     * 获取 id - ID.
     *
     * @return int|null
     */
    public function getId(): ?int
    {
        return $this->id;
    }

    /**
     * 赋值 id - ID.
     * @param int|null $id id
     * @return static
     */
    public function setId($id)
    {
        $this->id = null === $id ? null : (int)$id;
        return $this;
    }

    /**
     * 组别ID.
     * group_id
     * @Column(name="group_id", type="int", length=10, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $groupId = 0;

    /**
     * 获取 groupId - 组别ID.
     *
     * @return int|null
     */
    public function getGroupId(): ?int
    {
        return $this->groupId;
    }

    /**
     * 赋值 groupId - 组别ID.
     * @param int|null $groupId group_id
     * @return static
     */
    public function setGroupId($groupId)
    {
        $this->groupId = null === $groupId ? null : (int)$groupId;
        return $this;
    }

    /**
     * 用户名.
     * username
     * @Column(name="username", type="varchar", length=32, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $username = '';

    /**
     * 获取 username - 用户名.
     *
     * @return string|null
     */
    public function getUsername(): ?string
    {
        return $this->username;
    }

    /**
     * 赋值 username - 用户名.
     * @param string|null $username username
     * @return static
     */
    public function setUsername($username)
    {
        $this->username = null === $username ? null : (string)$username;
        return $this;
    }

    /**
     * 昵称.
     * nickname
     * @Column(name="nickname", type="varchar", length=50, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $nickname = '';

    /**
     * 获取 nickname - 昵称.
     *
     * @return string|null
     */
    public function getNickname(): ?string
    {
        return $this->nickname;
    }

    /**
     * 赋值 nickname - 昵称.
     * @param string|null $nickname nickname
     * @return static
     */
    public function setNickname($nickname)
    {
        $this->nickname = null === $nickname ? null : (string)$nickname;
        return $this;
    }

    /**
     * 密码.
     * password
     * @Column(name="password", type="varchar", length=32, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $password = '';

    /**
     * 获取 password - 密码.
     *
     * @return string|null
     */
    public function getPassword(): ?string
    {
        return $this->password;
    }

    /**
     * 赋值 password - 密码.
     * @param string|null $password password
     * @return static
     */
    public function setPassword($password)
    {
        $this->password = null === $password ? null : (string)$password;
        return $this;
    }

    /**
     * 密码盐.
     * salt
     * @Column(name="salt", type="varchar", length=30, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $salt = '';

    /**
     * 获取 salt - 密码盐.
     *
     * @return string|null
     */
    public function getSalt(): ?string
    {
        return $this->salt;
    }

    /**
     * 赋值 salt - 密码盐.
     * @param string|null $salt salt
     * @return static
     */
    public function setSalt($salt)
    {
        $this->salt = null === $salt ? null : (string)$salt;
        return $this;
    }

    /**
     * 电子邮箱.
     * email
     * @Column(name="email", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $email = '';

    /**
     * 获取 email - 电子邮箱.
     *
     * @return string|null
     */
    public function getEmail(): ?string
    {
        return $this->email;
    }

    /**
     * 赋值 email - 电子邮箱.
     * @param string|null $email email
     * @return static
     */
    public function setEmail($email)
    {
        $this->email = null === $email ? null : (string)$email;
        return $this;
    }

    /**
     * 真实名.
     * name
     * @Column(name="name", type="varchar", length=30, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $name = NULL;

    /**
     * 获取 name - 真实名.
     *
     * @return string|null
     */
    public function getName(): ?string
    {
        return $this->name;
    }

    /**
     * 赋值 name - 真实名.
     * @param string|null $name name
     * @return static
     */
    public function setName($name)
    {
        $this->name = null === $name ? null : (string)$name;
        return $this;
    }

    /**
     * 手机号.
     * mobile
     * @Column(name="mobile", type="varchar", length=11, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $mobile = '';

    /**
     * 获取 mobile - 手机号.
     *
     * @return string|null
     */
    public function getMobile(): ?string
    {
        return $this->mobile;
    }

    /**
     * 赋值 mobile - 手机号.
     * @param string|null $mobile mobile
     * @return static
     */
    public function setMobile($mobile)
    {
        $this->mobile = null === $mobile ? null : (string)$mobile;
        return $this;
    }

    /**
     * 身份证号.
     * sfz
     * @Column(name="sfz", type="varchar", length=20, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $sfz = NULL;

    /**
     * 获取 sfz - 身份证号.
     *
     * @return string|null
     */
    public function getSfz(): ?string
    {
        return $this->sfz;
    }

    /**
     * 赋值 sfz - 身份证号.
     * @param string|null $sfz sfz
     * @return static
     */
    public function setSfz($sfz)
    {
        $this->sfz = null === $sfz ? null : (string)$sfz;
        return $this;
    }

    /**
     * 联系住址.
     * address
     * @Column(name="address", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $address = NULL;

    /**
     * 获取 address - 联系住址.
     *
     * @return string|null
     */
    public function getAddress(): ?string
    {
        return $this->address;
    }

    /**
     * 赋值 address - 联系住址.
     * @param string|null $address address
     * @return static
     */
    public function setAddress($address)
    {
        $this->address = null === $address ? null : (string)$address;
        return $this;
    }

    /**
     * 身份证正面.
     * sfz1_image
     * @Column(name="sfz1_image", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $sfz1Image = NULL;

    /**
     * 获取 sfz1Image - 身份证正面.
     *
     * @return string|null
     */
    public function getSfz1Image(): ?string
    {
        return $this->sfz1Image;
    }

    /**
     * 赋值 sfz1Image - 身份证正面.
     * @param string|null $sfz1Image sfz1_image
     * @return static
     */
    public function setSfz1Image($sfz1Image)
    {
        $this->sfz1Image = null === $sfz1Image ? null : (string)$sfz1Image;
        return $this;
    }

    /**
     * 身份证反面.
     * sfz2_image
     * @Column(name="sfz2_image", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $sfz2Image = NULL;

    /**
     * 获取 sfz2Image - 身份证反面.
     *
     * @return string|null
     */
    public function getSfz2Image(): ?string
    {
        return $this->sfz2Image;
    }

    /**
     * 赋值 sfz2Image - 身份证反面.
     * @param string|null $sfz2Image sfz2_image
     * @return static
     */
    public function setSfz2Image($sfz2Image)
    {
        $this->sfz2Image = null === $sfz2Image ? null : (string)$sfz2Image;
        return $this;
    }

    /**
     * 人像照.
     * sfz3_image
     * @Column(name="sfz3_image", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $sfz3Image = NULL;

    /**
     * 获取 sfz3Image - 人像照.
     *
     * @return string|null
     */
    public function getSfz3Image(): ?string
    {
        return $this->sfz3Image;
    }

    /**
     * 赋值 sfz3Image - 人像照.
     * @param string|null $sfz3Image sfz3_image
     * @return static
     */
    public function setSfz3Image($sfz3Image)
    {
        $this->sfz3Image = null === $sfz3Image ? null : (string)$sfz3Image;
        return $this;
    }

    /**
     * 实名状态:0=待认证,1=已实名.
     * real_status
     * @Column(name="real_status", type="enum", length=0, accuracy=0, nullable=true, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $realStatus = '0';

    /**
     * 获取 realStatus - 实名状态:0=待认证,1=已实名.
     *
     * @return string|null
     */
    public function getRealStatus(): ?string
    {
        return $this->realStatus;
    }

    /**
     * 赋值 realStatus - 实名状态:0=待认证,1=已实名.
     * @param string|null $realStatus real_status
     * @return static
     */
    public function setRealStatus($realStatus)
    {
        $this->realStatus = null === $realStatus ? null : (string)$realStatus;
        return $this;
    }

    /**
     * 头像.
     * avatar
     * @Column(name="avatar", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $avatar = '';

    /**
     * 获取 avatar - 头像.
     *
     * @return string|null
     */
    public function getAvatar(): ?string
    {
        return $this->avatar;
    }

    /**
     * 赋值 avatar - 头像.
     * @param string|null $avatar avatar
     * @return static
     */
    public function setAvatar($avatar)
    {
        $this->avatar = null === $avatar ? null : (string)$avatar;
        return $this;
    }

    /**
     * 等级.
     * level
     * @Column(name="level", type="tinyint", length=1, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $level = 0;

    /**
     * 获取 level - 等级.
     *
     * @return int|null
     */
    public function getLevel(): ?int
    {
        return $this->level;
    }

    /**
     * 赋值 level - 等级.
     * @param int|null $level level
     * @return static
     */
    public function setLevel($level)
    {
        $this->level = null === $level ? null : (int)$level;
        return $this;
    }

    /**
     * 性别.
     * gender
     * @Column(name="gender", type="tinyint", length=1, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $gender = 0;

    /**
     * 获取 gender - 性别.
     *
     * @return int|null
     */
    public function getGender(): ?int
    {
        return $this->gender;
    }

    /**
     * 赋值 gender - 性别.
     * @param int|null $gender gender
     * @return static
     */
    public function setGender($gender)
    {
        $this->gender = null === $gender ? null : (int)$gender;
        return $this;
    }

    /**
     * 生日.
     * birthday
     * @Column(name="birthday", type="date", length=0, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $birthday = NULL;

    /**
     * 获取 birthday - 生日.
     *
     * @return string|null
     */
    public function getBirthday(): ?string
    {
        return $this->birthday;
    }

    /**
     * 赋值 birthday - 生日.
     * @param string|null $birthday birthday
     * @return static
     */
    public function setBirthday($birthday)
    {
        $this->birthday = null === $birthday ? null : (string)$birthday;
        return $this;
    }

    /**
     * 格言.
     * bio
     * @Column(name="bio", type="varchar", length=100, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $bio = '';

    /**
     * 获取 bio - 格言.
     *
     * @return string|null
     */
    public function getBio(): ?string
    {
        return $this->bio;
    }

    /**
     * 赋值 bio - 格言.
     * @param string|null $bio bio
     * @return static
     */
    public function setBio($bio)
    {
        $this->bio = null === $bio ? null : (string)$bio;
        return $this;
    }

    /**
     * 余额.
     * money
     * @Column(name="money", type="decimal", length=10, accuracy=2, nullable=false, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $money = NULL;

    /**
     * 获取 money - 余额.
     *
     * @return string|float|int|null
     */
    public function getMoney()
    {
        return $this->money;
    }

    /**
     * 赋值 money - 余额.
     * @param string|float|int|null $money money
     * @return static
     */
    public function setMoney($money)
    {
        $this->money = null === $money ? null : $money;
        return $this;
    }

    /**
     * 贝壳.
     * shell
     * @Column(name="shell", type="decimal", length=10, accuracy=2, nullable=true, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $shell = NULL;

    /**
     * 获取 shell - 贝壳.
     *
     * @return string|float|int|null
     */
    public function getShell()
    {
        return $this->shell;
    }

    /**
     * 赋值 shell - 贝壳.
     * @param string|float|int|null $shell shell
     * @return static
     */
    public function setShell($shell)
    {
        $this->shell = null === $shell ? null : $shell;
        return $this;
    }

    /**
     * 保证金.
     * surety
     * @Column(name="surety", type="decimal", length=10, accuracy=2, nullable=true, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $surety = NULL;

    /**
     * 获取 surety - 保证金.
     *
     * @return string|float|int|null
     */
    public function getSurety()
    {
        return $this->surety;
    }

    /**
     * 赋值 surety - 保证金.
     * @param string|float|int|null $surety surety
     * @return static
     */
    public function setSurety($surety)
    {
        $this->surety = null === $surety ? null : $surety;
        return $this;
    }

    /**
     * 邀请成功总积分.
     * share_score
     * @Column(name="share_score", type="decimal", length=10, accuracy=2, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $shareScore = NULL;

    /**
     * 获取 shareScore - 邀请成功总积分.
     *
     * @return string|float|int|null
     */
    public function getShareScore()
    {
        return $this->shareScore;
    }

    /**
     * 赋值 shareScore - 邀请成功总积分.
     * @param string|float|int|null $shareScore share_score
     * @return static
     */
    public function setShareScore($shareScore)
    {
        $this->shareScore = null === $shareScore ? null : $shareScore;
        return $this;
    }

    /**
     * 积分.
     * score
     * @Column(name="score", type="decimal", length=10, accuracy=2, nullable=true, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $score = NULL;

    /**
     * 获取 score - 积分.
     *
     * @return string|float|int|null
     */
    public function getScore()
    {
        return $this->score;
    }

    /**
     * 赋值 score - 积分.
     * @param string|float|int|null $score score
     * @return static
     */
    public function setScore($score)
    {
        $this->score = null === $score ? null : $score;
        return $this;
    }

    /**
     * 连续登录天数.
     * successions
     * @Column(name="successions", type="int", length=10, accuracy=0, nullable=false, default="1", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $successions = 1;

    /**
     * 获取 successions - 连续登录天数.
     *
     * @return int|null
     */
    public function getSuccessions(): ?int
    {
        return $this->successions;
    }

    /**
     * 赋值 successions - 连续登录天数.
     * @param int|null $successions successions
     * @return static
     */
    public function setSuccessions($successions)
    {
        $this->successions = null === $successions ? null : (int)$successions;
        return $this;
    }

    /**
     * 最大连续登录天数.
     * maxsuccessions
     * @Column(name="maxsuccessions", type="int", length=10, accuracy=0, nullable=false, default="1", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $maxsuccessions = 1;

    /**
     * 获取 maxsuccessions - 最大连续登录天数.
     *
     * @return int|null
     */
    public function getMaxsuccessions(): ?int
    {
        return $this->maxsuccessions;
    }

    /**
     * 赋值 maxsuccessions - 最大连续登录天数.
     * @param int|null $maxsuccessions maxsuccessions
     * @return static
     */
    public function setMaxsuccessions($maxsuccessions)
    {
        $this->maxsuccessions = null === $maxsuccessions ? null : (int)$maxsuccessions;
        return $this;
    }

    /**
     * 上次登录时间.
     * prevtime
     * @Column(name="prevtime", type="bigint", length=16, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $prevtime = NULL;

    /**
     * 获取 prevtime - 上次登录时间.
     *
     * @return int|null
     */
    public function getPrevtime(): ?int
    {
        return $this->prevtime;
    }

    /**
     * 赋值 prevtime - 上次登录时间.
     * @param int|null $prevtime prevtime
     * @return static
     */
    public function setPrevtime($prevtime)
    {
        $this->prevtime = null === $prevtime ? null : (int)$prevtime;
        return $this;
    }

    /**
     * 登录时间.
     * logintime
     * @Column(name="logintime", type="bigint", length=16, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $logintime = NULL;

    /**
     * 获取 logintime - 登录时间.
     *
     * @return int|null
     */
    public function getLogintime(): ?int
    {
        return $this->logintime;
    }

    /**
     * 赋值 logintime - 登录时间.
     * @param int|null $logintime logintime
     * @return static
     */
    public function setLogintime($logintime)
    {
        $this->logintime = null === $logintime ? null : (int)$logintime;
        return $this;
    }

    /**
     * 登录IP.
     * loginip
     * @Column(name="loginip", type="varchar", length=50, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $loginip = '';

    /**
     * 获取 loginip - 登录IP.
     *
     * @return string|null
     */
    public function getLoginip(): ?string
    {
        return $this->loginip;
    }

    /**
     * 赋值 loginip - 登录IP.
     * @param string|null $loginip loginip
     * @return static
     */
    public function setLoginip($loginip)
    {
        $this->loginip = null === $loginip ? null : (string)$loginip;
        return $this;
    }

    /**
     * 失败次数.
     * loginfailure
     * @Column(name="loginfailure", type="tinyint", length=1, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $loginfailure = 0;

    /**
     * 获取 loginfailure - 失败次数.
     *
     * @return int|null
     */
    public function getLoginfailure(): ?int
    {
        return $this->loginfailure;
    }

    /**
     * 赋值 loginfailure - 失败次数.
     * @param int|null $loginfailure loginfailure
     * @return static
     */
    public function setLoginfailure($loginfailure)
    {
        $this->loginfailure = null === $loginfailure ? null : (int)$loginfailure;
        return $this;
    }

    /**
     * 加入IP.
     * joinip
     * @Column(name="joinip", type="varchar", length=50, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $joinip = '';

    /**
     * 获取 joinip - 加入IP.
     *
     * @return string|null
     */
    public function getJoinip(): ?string
    {
        return $this->joinip;
    }

    /**
     * 赋值 joinip - 加入IP.
     * @param string|null $joinip joinip
     * @return static
     */
    public function setJoinip($joinip)
    {
        $this->joinip = null === $joinip ? null : (string)$joinip;
        return $this;
    }

    /**
     * 加入时间.
     * jointime
     * @Column(name="jointime", type="bigint", length=16, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $jointime = NULL;

    /**
     * 获取 jointime - 加入时间.
     *
     * @return int|null
     */
    public function getJointime(): ?int
    {
        return $this->jointime;
    }

    /**
     * 赋值 jointime - 加入时间.
     * @param int|null $jointime jointime
     * @return static
     */
    public function setJointime($jointime)
    {
        $this->jointime = null === $jointime ? null : (int)$jointime;
        return $this;
    }

    /**
     * 创建时间.
     * createtime
     * @Column(name="createtime", type="bigint", length=16, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $createtime = NULL;

    /**
     * 获取 createtime - 创建时间.
     *
     * @return int|null
     */
    public function getCreatetime(): ?int
    {
        return $this->createtime;
    }

    /**
     * 赋值 createtime - 创建时间.
     * @param int|null $createtime createtime
     * @return static
     */
    public function setCreatetime($createtime)
    {
        $this->createtime = null === $createtime ? null : (int)$createtime;
        return $this;
    }

    /**
     * 更新时间.
     * updatetime
     * @Column(name="updatetime", type="bigint", length=16, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $updatetime = NULL;

    /**
     * 获取 updatetime - 更新时间.
     *
     * @return int|null
     */
    public function getUpdatetime(): ?int
    {
        return $this->updatetime;
    }

    /**
     * 赋值 updatetime - 更新时间.
     * @param int|null $updatetime updatetime
     * @return static
     */
    public function setUpdatetime($updatetime)
    {
        $this->updatetime = null === $updatetime ? null : (int)$updatetime;
        return $this;
    }

    /**
     * Token.
     * token
     * @Column(name="token", type="varchar", length=50, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $token = '';

    /**
     * 获取 token - Token.
     *
     * @return string|null
     */
    public function getToken(): ?string
    {
        return $this->token;
    }

    /**
     * 赋值 token - Token.
     * @param string|null $token token
     * @return static
     */
    public function setToken($token)
    {
        $this->token = null === $token ? null : (string)$token;
        return $this;
    }

    /**
     * 状态.
     * status
     * @Column(name="status", type="varchar", length=30, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $status = '';

    /**
     * 获取 status - 状态.
     *
     * @return string|null
     */
    public function getStatus(): ?string
    {
        return $this->status;
    }

    /**
     * 赋值 status - 状态.
     * @param string|null $status status
     * @return static
     */
    public function setStatus($status)
    {
        $this->status = null === $status ? null : (string)$status;
        return $this;
    }

    /**
     * 验证.
     * verification
     * @Column(name="verification", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $verification = '';

    /**
     * 获取 verification - 验证.
     *
     * @return string|null
     */
    public function getVerification(): ?string
    {
        return $this->verification;
    }

    /**
     * 赋值 verification - 验证.
     * @param string|null $verification verification
     * @return static
     */
    public function setVerification($verification)
    {
        $this->verification = null === $verification ? null : (string)$verification;
        return $this;
    }

    /**
     * 上级id.
     * pid
     * @Column(name="pid", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $pid = NULL;

    /**
     * 获取 pid - 上级id.
     *
     * @return int|null
     */
    public function getPid(): ?int
    {
        return $this->pid;
    }

    /**
     * 赋值 pid - 上级id.
     * @param int|null $pid pid
     * @return static
     */
    public function setPid($pid)
    {
        $this->pid = null === $pid ? null : (int)$pid;
        return $this;
    }

    /**
     * 变更前上级.
     * before_pid
     * @Column(name="before_pid", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $beforePid = NULL;

    /**
     * 获取 beforePid - 变更前上级.
     *
     * @return int|null
     */
    public function getBeforePid(): ?int
    {
        return $this->beforePid;
    }

    /**
     * 赋值 beforePid - 变更前上级.
     * @param int|null $beforePid before_pid
     * @return static
     */
    public function setBeforePid($beforePid)
    {
        $this->beforePid = null === $beforePid ? null : (int)$beforePid;
        return $this;
    }

    /**
     * 原上级.
     * old_pid
     * @Column(name="old_pid", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $oldPid = NULL;

    /**
     * 获取 oldPid - 原上级.
     *
     * @return int|null
     */
    public function getOldPid(): ?int
    {
        return $this->oldPid;
    }

    /**
     * 赋值 oldPid - 原上级.
     * @param int|null $oldPid old_pid
     * @return static
     */
    public function setOldPid($oldPid)
    {
        $this->oldPid = null === $oldPid ? null : (int)$oldPid;
        return $this;
    }

    /**
     * 密码.
     * cipher
     * @Column(name="cipher", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $cipher = NULL;

    /**
     * 获取 cipher - 密码.
     *
     * @return string|null
     */
    public function getCipher(): ?string
    {
        return $this->cipher;
    }

    /**
     * 赋值 cipher - 密码.
     * @param string|null $cipher cipher
     * @return static
     */
    public function setCipher($cipher)
    {
        $this->cipher = null === $cipher ? null : (string)$cipher;
        return $this;
    }

    /**
     * 二维码.
     * qr
     * @Column(name="qr", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $qr = NULL;

    /**
     * 获取 qr - 二维码.
     *
     * @return string|null
     */
    public function getQr(): ?string
    {
        return $this->qr;
    }

    /**
     * 赋值 qr - 二维码.
     * @param string|null $qr qr
     * @return static
     */
    public function setQr($qr)
    {
        $this->qr = null === $qr ? null : (string)$qr;
        return $this;
    }

    /**
     * 邀请码.
     * invite_code
     * @Column(name="invite_code", type="varchar", length=20, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $inviteCode = NULL;

    /**
     * 获取 inviteCode - 邀请码.
     *
     * @return string|null
     */
    public function getInviteCode(): ?string
    {
        return $this->inviteCode;
    }

    /**
     * 赋值 inviteCode - 邀请码.
     * @param string|null $inviteCode invite_code
     * @return static
     */
    public function setInviteCode($inviteCode)
    {
        $this->inviteCode = null === $inviteCode ? null : (string)$inviteCode;
        return $this;
    }

    /**
     * 运营中心.
     * run_id
     * @Column(name="run_id", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $runId = NULL;

    /**
     * 获取 runId - 运营中心.
     *
     * @return int|null
     */
    public function getRunId(): ?int
    {
        return $this->runId;
    }

    /**
     * 赋值 runId - 运营中心.
     * @param int|null $runId run_id
     * @return static
     */
    public function setRunId($runId)
    {
        $this->runId = null === $runId ? null : (int)$runId;
        return $this;
    }

    /**
     * 默认地址.
     * addr_id
     * @Column(name="addr_id", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $addrId = NULL;

    /**
     * 获取 addrId - 默认地址.
     *
     * @return int|null
     */
    public function getAddrId(): ?int
    {
        return $this->addrId;
    }

    /**
     * 赋值 addrId - 默认地址.
     * @param int|null $addrId addr_id
     * @return static
     */
    public function setAddrId($addrId)
    {
        $this->addrId = null === $addrId ? null : (int)$addrId;
        return $this;
    }

    /**
     * 角色ID.
     * set_id
     * @Column(name="set_id", type="int", length=10, accuracy=0, nullable=true, default="1", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $setId = 1;

    /**
     * 获取 setId - 角色ID.
     *
     * @return int|null
     */
    public function getSetId(): ?int
    {
        return $this->setId;
    }

    /**
     * 赋值 setId - 角色ID.
     * @param int|null $setId set_id
     * @return static
     */
    public function setSetId($setId)
    {
        $this->setId = null === $setId ? null : (int)$setId;
        return $this;
    }

    /**
     * 技能介绍.
     * skill
     * @Column(name="skill", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $skill = NULL;

    /**
     * 获取 skill - 技能介绍.
     *
     * @return string|null
     */
    public function getSkill(): ?string
    {
        return $this->skill;
    }

    /**
     * 赋值 skill - 技能介绍.
     * @param string|null $skill skill
     * @return static
     */
    public function setSkill($skill)
    {
        $this->skill = null === $skill ? null : (string)$skill;
        return $this;
    }

    /**
     * 省id.
     * province_id
     * @Column(name="province_id", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $provinceId = NULL;

    /**
     * 获取 provinceId - 省id.
     *
     * @return int|null
     */
    public function getProvinceId(): ?int
    {
        return $this->provinceId;
    }

    /**
     * 赋值 provinceId - 省id.
     * @param int|null $provinceId province_id
     * @return static
     */
    public function setProvinceId($provinceId)
    {
        $this->provinceId = null === $provinceId ? null : (int)$provinceId;
        return $this;
    }

    /**
     * 城市id.
     * city_id
     * @Column(name="city_id", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $cityId = NULL;

    /**
     * 获取 cityId - 城市id.
     *
     * @return int|null
     */
    public function getCityId(): ?int
    {
        return $this->cityId;
    }

    /**
     * 赋值 cityId - 城市id.
     * @param int|null $cityId city_id
     * @return static
     */
    public function setCityId($cityId)
    {
        $this->cityId = null === $cityId ? null : (int)$cityId;
        return $this;
    }

    /**
     * 区id.
     * district_id
     * @Column(name="district_id", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $districtId = NULL;

    /**
     * 获取 districtId - 区id.
     *
     * @return int|null
     */
    public function getDistrictId(): ?int
    {
        return $this->districtId;
    }

    /**
     * 赋值 districtId - 区id.
     * @param int|null $districtId district_id
     * @return static
     */
    public function setDistrictId($districtId)
    {
        $this->districtId = null === $districtId ? null : (int)$districtId;
        return $this;
    }

    /**
     * 乡镇id.
     * town_id
     * @Column(name="town_id", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $townId = NULL;

    /**
     * 获取 townId - 乡镇id.
     *
     * @return int|null
     */
    public function getTownId(): ?int
    {
        return $this->townId;
    }

    /**
     * 赋值 townId - 乡镇id.
     * @param int|null $townId town_id
     * @return static
     */
    public function setTownId($townId)
    {
        $this->townId = null === $townId ? null : (int)$townId;
        return $this;
    }

    /**
     * 支付密码.
     * pay_password
     * @Column(name="pay_password", type="varchar", length=32, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $payPassword = NULL;

    /**
     * 获取 payPassword - 支付密码.
     *
     * @return string|null
     */
    public function getPayPassword(): ?string
    {
        return $this->payPassword;
    }

    /**
     * 赋值 payPassword - 支付密码.
     * @param string|null $payPassword pay_password
     * @return static
     */
    public function setPayPassword($payPassword)
    {
        $this->payPassword = null === $payPassword ? null : (string)$payPassword;
        return $this;
    }

    /**
     * 开放平台.
     * unionid
     * @Column(name="unionid", type="varchar", length=32, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $unionid = NULL;

    /**
     * 获取 unionid - 开放平台.
     *
     * @return string|null
     */
    public function getUnionid(): ?string
    {
        return $this->unionid;
    }

    /**
     * 赋值 unionid - 开放平台.
     * @param string|null $unionid unionid
     * @return static
     */
    public function setUnionid($unionid)
    {
        $this->unionid = null === $unionid ? null : (string)$unionid;
        return $this;
    }

    /**
     * 微信真实姓名.
     * wechat_name
     * @Column(name="wechat_name", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $wechatName = NULL;

    /**
     * 获取 wechatName - 微信真实姓名.
     *
     * @return string|null
     */
    public function getWechatName(): ?string
    {
        return $this->wechatName;
    }

    /**
     * 赋值 wechatName - 微信真实姓名.
     * @param string|null $wechatName wechat_name
     * @return static
     */
    public function setWechatName($wechatName)
    {
        $this->wechatName = null === $wechatName ? null : (string)$wechatName;
        return $this;
    }

    /**
     * 微信openid.
     * wechat_openid
     * @Column(name="wechat_openid", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $wechatOpenid = NULL;

    /**
     * 获取 wechatOpenid - 微信openid.
     *
     * @return string|null
     */
    public function getWechatOpenid(): ?string
    {
        return $this->wechatOpenid;
    }

    /**
     * 赋值 wechatOpenid - 微信openid.
     * @param string|null $wechatOpenid wechat_openid
     * @return static
     */
    public function setWechatOpenid($wechatOpenid)
    {
        $this->wechatOpenid = null === $wechatOpenid ? null : (string)$wechatOpenid;
        return $this;
    }

    /**
     * 售后站服务用户id.
     * after_sales_user_id
     * @Column(name="after_sales_user_id", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=true, virtual=false)
     * @var int|null
     */
    protected ?int $afterSalesUserId = NULL;

    /**
     * 获取 afterSalesUserId - 售后站服务用户id.
     *
     * @return int|null
     */
    public function getAfterSalesUserId(): ?int
    {
        return $this->afterSalesUserId;
    }

    /**
     * 赋值 afterSalesUserId - 售后站服务用户id.
     * @param int|null $afterSalesUserId after_sales_user_id
     * @return static
     */
    public function setAfterSalesUserId($afterSalesUserId)
    {
        $this->afterSalesUserId = null === $afterSalesUserId ? null : (int)$afterSalesUserId;
        return $this;
    }

}
